package com.example.design;

import com.example.design.core.FileProcessingContext;
import com.example.design.impl.OrderFieldEnum;
import com.example.design.impl.SmartFileProcessor;

import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.List;

/**
 * 启动类，模拟文件批处理入口
 */
public class MainApp {

    public static void main(String[] args) throws Exception {

        // 初始化文件上下文
        FileProcessingContext<OrderFieldEnum> context = new FileProcessingContext<>();

        // 初始化智能文件处理器
        SmartFileProcessor processor = new SmartFileProcessor();

        // 模拟收到的文件列表
        List<Path> files = Arrays.asList(
                Paths.get("SPECIAL_2025-订单.txt"),
                Paths.get("normal_订单.txt"),
                Paths.get("product_images.zip"),
                Paths.get("logo.png")
        );

        // 执行处理
        processor.processFiles(files, context);

        // 输出错误
        if (context.hasErrors()) {
            System.out.println("======== 错误日志 ========");
            context.getErrorBuffer().forEach(System.out::println);
        } else {
            System.out.println("所有文件处理成功 ✅");
        }
    }
}
